package com.lanhe.common.core.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.lanhe.common.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 会员基础表(LhMemberBase)表实体类
 *
 * @author zhanggl
 * @since 2023-12-04 17:01:13
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@TableName("lh_member_base")
public class LhMemberBase {

	/**
	 * 会员ID
	 */
	@TableId(type = IdType.AUTO)
	@Excel(name = "序号",cellType = Excel.ColumnType.NUMERIC)
	private Long memberId;

	/**
	 * 老师ID
	 */
	private Long teacherId;

	/**
	 * 用户唯一key
	 */
	private String userKey;

	/**
	 * 登录账号
	 */
	private String loginName;

	/**
	 * 头像
	 */
	private String headPic;

	/**
	 * 用户昵称
	 */
	@Excel(name = "用户")
	private String userName;

	/**
	 * 用户邮箱
	 */
	@Excel(name = "用户邮箱")
	private String email;

	/**
	 * 手机号码
	 */
	@Excel(name = "手机号")
	private String mobile;

	/**
	 * 性别
	 */
	@Excel(name = "性别",cellType = Excel.ColumnType.STRING,readConverterExp = "0=男,1=女")
	private Integer sex;

	/**
	 * 密码
	 */
	private String pwd;

	/**
	 * 最近登录时间
	 */
	private Date recentLoginTime;

	/**
	 * 个人签名
	 */
	@Excel(name = "个人签名")
	private String sign;

	/**
	 * 身高
	 */
	@Excel(name = "身高")
	private Integer height;

	/**
	 * 体重kg
	 */
	@Excel(name = "体重kg")
	private Integer weight;

	/**
	 * 生日
	 */
	@Excel(name = "体重kg",cellType = Excel.ColumnType.STRING,dateFormat = "yyyy-MM-dd")
	private Date birthday;

	/**
	 * 绑定微信ID
	 */
	private String wxId;

	/**
	 * 微信号
	 */
	private String wxNo;

	/**
	 * 年龄
	 */
	@Excel(name = "年龄")
	private Integer age;

	/**
	 * 爱好标签
	 */
	@Excel(name = "爱好")
	private String hobTag;

	/**
	 * 推送开关
	 */
	private Integer notifySwitch;

	/**
	 * 设备ID
	 */
	private String deviceId;

	/**
	 * 注册编号-别人的推荐码
	 */
	private Integer registerNo;

	/**
	 * 注册渠道0-app;1-微信小程序；2-抖音；3-支付宝；4-h5
	 */
	private Integer registerChannel;

	/**
	 * 是否实名0-未，1-是
	 */
	@Excel(name = "是否实名",cellType = Excel.ColumnType.STRING,readConverterExp = "0-未,1-是")
	private Integer canRealState;

	/**
	 * 证件类型0-身份证
	 */
	@Excel(name = "证件类型",cellType = Excel.ColumnType.STRING,readConverterExp = "0-身份证")
	private Integer idType;

	/**
	 * 证件号码
	 */
	@Excel(name = "证件号码")
	private String idNumber;

	/**
	 * 证件姓名
	 */
	@Excel(name = "证件姓名")
	private String idCardName;

	/**
	 * 职业
	 */
	@Excel(name = "职业")
	private String postJob;

	/**
	 * 推荐人
	 */
	private Long recemMemberId;

	/**
	 * 推荐码
	 */
	@Excel(name = "推荐码")
	private String recemCode;

	/**
	 * 多游编码
	 */
	private String duoyouVipNumber;

	/**
	 * 省编码
	 */
	private String provinceCode;

	/**
	 * 省名称
	 */
	@Excel(name = "省名称")
	private String provinceName;

	/**
	 * 城市编号,行政区编号
	 */
	private String cityCode;

	/**
	 * 城市名称
	 */
	@Excel(name = "城市名称")
	private String cityName;

	/**
	 * 县区编码
	 */
	private String districtCode;

	/**
	 * 县区名称
	 */
	@Excel(name = "县区名称")
	private String districtName;

	/**
	 * 总金额
	 */
	@Excel(name = "总金额")
	private BigDecimal totalAmount;

	/**
	 * 余额
	 */
	@Excel(name = "余额")
	private BigDecimal balance;

	/**
	 * 锁定金额
	 */
	@Excel(name = "锁定金额")
	private BigDecimal lockAmount;

	/**
	 * 提现金额
	 */
	@Excel(name = "提现金额")
	private BigDecimal withdrawnAmount;

	/**
	 * 消费金额
	 */
	@Excel(name = "消费金额")
	private BigDecimal consumedAmount;

	/**
	 * 消费次数
	 */
	@Excel(name = "消费次数")
	private Integer consumedNumber;

	/**
	 * 等级
	 */
	private Integer leaderLevel;

	/**
	 * 续费次数
	 */
	private Integer renewNumber;

	/**
	 * 到期日期
	 */
	@Excel(name = "到期日期",cellType = Excel.ColumnType.STRING,dateFormat = "yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date expiryDate;

	/**
	 * 会员总积分
	 */
	private Long totalScore;

	/**
	 * 会员剩余积分
	 */
	private Long residueScore;

	/**
	 * 状态（0正常 1禁用）
	 */
	private String status;

	/**
	 * 删除标志（0代表存在 2代表删除）
	 */
	private String delFlag;

	/**
	 * 创建者
	 */
	private String createBy;

	/**
	 * 创建时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date createTime;

	/**
	 * 更新者
	 */
	private String updateBy;

	/**
	 * 更新时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date updateTime;

	@TableField(exist = false)
	private BigDecimal amount;
	// 上级归属名称
	@TableField(exist = false)
	@Excel(name = "推荐人")
	private String recemName;
	// 归属老师
	@TableField(exist = false)
	@Excel(name = "归属老师")
	private String teacherName;
	//	归属老师二维码
	@TableField(exist = false)
	private String teacherQrCode;
}

